home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) 1982 Regents of the University of California */
-
- /* @(#)ndir.h 4.4 3/30/82 */
-
- /*
- * This sets the "page size" for directories.
- * Requirements are DEV_BSIZE <= DIRBLKSIZ <= MINBSIZE with
- * DIRBLKSIZ a power of two.
- * Dennis Ritchie feels that directory pages should be atomic
- * operations to the disk, so we use DEV_BSIZE.
- */
- #define DIRBLKSIZ 512
-
- /*
- * This limits the directory name length. Its main constraint
- * is that it appears twice in the user structure. (u. area)
- */
- #define MAXNAMLEN 255
-
- struct direct {
- long d_ino;
- short d_reclen;
- short d_namlen;
- char d_name[MAXNAMLEN + 1];
- /* typically shorter */
- };
-
- struct _dirdesc {
- int dd_fd;
- long dd_loc;
- long dd_size;
- char dd_buf[DIRBLKSIZ];
- };
-
- /*
- * useful macros.
- */
- #undef DIRSIZ
- #define DIRSIZ(dp) \
- ((sizeof(struct direct) - MAXNAMLEN + (dp)->d_namlen + sizeof(ino_t) - 1) &\
- ~(sizeof(ino_t) - 1))
- typedef struct _dirdesc DIR;
- #ifndef NULL
- #define NULL 0
- #endif
-
- /*
- * functions defined on directories
- */
- extern DIR *opendir();
- extern struct direct *readdir();
- extern long telldir();
- extern long lseek();
- extern seekdir();
- #define rewinddir(dirp) seekdir((dirp), 0L)
- extern closedir();
-